package com.gzu.ltms.service;

import com.gzu.ltms.entity.User;
import com.gzu.ltms.entity.dto.FindUserByIdReqDTO;
import com.gzu.ltms.entity.dto.FindUserByIdRspDTO;
import com.gzu.ltms.entity.vo.UpdateReqVO;
import com.gzu.ltms.entity.vo.UserLoginReqVO;
import com.gzu.ltms.response.Response;
import com.mybatisflex.core.service.IService;

/**
 * 用户信息表 服务层。
 *
 * @author mm
 * @since 2025-04-28
 */
public interface UserService extends IService<User> {

    /**
     * 登录和注册
     * @param userLoginReqVO
     * @return
     */
    Response<String> loginAndRegister(UserLoginReqVO userLoginReqVO);


    /**
     * 登出
     * @return
     */
    Response<String> logout();

    /**
     * 修改密码
     * @param updateReqVO
     * @return
     */
    Response<String> update(UpdateReqVO updateReqVO);

    /**
     * 根据id查询用户信息
     * @param findUserByIdReqDTO
     * @return
     */
    Response<FindUserByIdRspDTO> findById(FindUserByIdReqDTO findUserByIdReqDTO);
}
